package com.lanlion.porlet.common;


@CommonEntityFileAnnotation(type = "class",name = "wechat_pay")
public class WechatPayEntity {

    //服务商商户的APPID
    @CommonEntityFileAnnotation(type = "String",name = "appid")
    private String appid;

    //服务商商户号
    @CommonEntityFileAnnotation(type = "String",name = "mch_id")
    private String mchid;

    //trade_type=JSAPI，此参数必传，用户在主商户appid下的唯一标识。openid和sub_openid可以选传其中之一，如果选择传sub_openid,则必须传sub_appid
    @CommonEntityFileAnnotation(type = "String",name = "openid")
    private String openid;

    @CommonEntityFileAnnotation(type = "String",name = "sub_appid")
    private String subAppid;

    //微信支付分配的子商户号
    @CommonEntityFileAnnotation(type = "String",name = "sub_mch_id")
    private String subMchId;

    //trade_type=JSAPI，此参数必传，用户在子商户appid下的唯一标识。openid和sub_openid可以选传其中之一，如果选择传sub_openid,则必须传sub_appid
    @CommonEntityFileAnnotation(type = "String",name = "sub_openid")
    private String subOpenid;

    //终端设备号(门店号或收银设备ID)，注意：PC网页或JSAPI支付请传"WEB"
    @CommonEntityFileAnnotation(type = "String",name = "device_info")
    private String deviceInfo;

    //传入Y时，支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能，传此字段才可生效
    @CommonEntityFileAnnotation(type = "String",name = "receipt")
    private String receipt;

    //随机字符串，不长于32位
    @CommonEntityFileAnnotation(type = "String",name = "nonce_str")
    private String nonceStr;

    //签名
    @CommonEntityFileAnnotation(type = "String",name = "sign")
    private String sign;

    //签名类型，目前支持HMAC-SHA256和MD5，默认为MD5
    @CommonEntityFileAnnotation(type = "String",name = "sign_type")
    private String signType;

    //商品描述交易
    @CommonEntityFileAnnotation(type = "String",name = "body")
    private String body;

    //附加数据，在查询API和支付通知中原样返回，该字段主要用于商户携带订单的自定义数据
    @CommonEntityFileAnnotation(type = "String",name = "attach")
    private String attach;

    //商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*且在同一个商户号下唯一
    @CommonEntityFileAnnotation(type = "String",name = "out_trade_no")
    private String outTradeNo;

    //符合ISO 4217标准的三位字母代码，默认人民币：CNY
    @CommonEntityFileAnnotation(type = "String",name = "fee_type")
    private String feeType;

    //订单总金额，只能为整数,单位为分
    @CommonEntityFileAnnotation(type = "String",name = "total_fee")
    private int totalFee;

    //终端IP,即调用接口API的机器IP，需要在白名单中配置
    @CommonEntityFileAnnotation(type = "String",name = "spbill_create_ip")
    private String spbillCreateIp;

    //接收微信支付异步通知回调地址，通知url必须为直接可访问的url，不能携带参数
    @CommonEntityFileAnnotation(type = "String",name = "notify_url")
    private String notifyUrl;

    //交易类型:JSAPI -JSAPI支付; NATIVE -Native支付 ; APP -APP支付
    @CommonEntityFileAnnotation(type = "String",name = "trade_type")
    private String tradeType;

    //商品ID
    @CommonEntityFileAnnotation(type = "String",name = "product_id")
    private String productId;

    //H5支付必传参数{"h5_info": {"type": "场景类型", "wap_url": "WAP网站URL地址","wap_name": "WAP 网站名" }}
    // eg:{"h5_info": {"type":"Wap","wap_url": "https://pay.qq.com","wap_name": "腾讯充值"}}
    @CommonEntityFileAnnotation(type = "String",name = "scene_info")
    private String sceneInfo;

    //微信交易订单号，用于订单查询使用
    @CommonEntityFileAnnotation(type = "String",name = "transaction_id")
    private String transactionId;

    //商户系统内部的退款单号，商户系统内部唯一，只能是数字、大小写字母_-|*@ ，同一退款单号多次请求只退一笔。
    @CommonEntityFileAnnotation(type = "String",name = "out_refund_no")
    private String outRefundNo;

    //退款总金额，单位为分，只能为整数，可部分退款
    @CommonEntityFileAnnotation(type = "String",name = "refund_fee")
    private int refundFee;

    //若商户传入，会在下发给用户的退款消息中体现退款原因;注意：若订单退款金额≤1元，且属于部分退款，则不会在退款消息中体现退款原因
    @CommonEntityFileAnnotation(type = "String",name = "refund_desc")
    private String refundDesc;

    //服务商模式：是否分账Y-是，需要分账 N-否，不分账  字母要求大写，不传默认不分账
    @CommonEntityFileAnnotation(type = "String",name = "profit_sharing")
    private String profitSharing;

    public String getProfitSharing() {
        return profitSharing;
    }

    public void setProfitSharing(String profitSharing) {
        this.profitSharing = profitSharing;
    }

    public String getOutRefundNo() {
        return outRefundNo;
    }

    public void setOutRefundNo(String outRefundNo) {
        this.outRefundNo = outRefundNo;
    }

    public int getRefundFee() {
        return refundFee;
    }

    public void setRefundFee(int refundFee) {
        this.refundFee = refundFee;
    }

    public String getRefundDesc() {
        return refundDesc;
    }

    public void setRefundDesc(String refundDesc) {
        this.refundDesc = refundDesc;
    }

    public String getTransactionId() {
        return transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public String getSceneInfo() {
        return sceneInfo;
    }

    public void setSceneInfo(String sceneInfo) {
        this.sceneInfo = sceneInfo;
    }

    public String getAppid() {
        return appid;
    }

    public void setAppid(String appid) {
        this.appid = appid;
    }

    public String getMchid() {
        return mchid;
    }

    public void setMchid(String mchid) {
        this.mchid = mchid;
    }

    public String getOpenid() {
        return openid;
    }

    public void setOpenid(String openid) {
        this.openid = openid;
    }

    public String getSubAppid() {
        return subAppid;
    }

    public void setSubAppid(String subAppid) {
        this.subAppid = subAppid;
    }

    public String getSubMchId() {
        return subMchId;
    }

    public void setSubMchId(String subMchId) {
        this.subMchId = subMchId;
    }

    public String getSubOpenid() {
        return subOpenid;
    }

    public void setSubOpenid(String subOpenid) {
        this.subOpenid = subOpenid;
    }

    public String getDeviceInfo() {
        return deviceInfo;
    }

    public void setDeviceInfo(String deviceInfo) {
        this.deviceInfo = deviceInfo;
    }

    public String getReceipt() {
        return receipt;
    }

    public void setReceipt(String receipt) {
        this.receipt = receipt;
    }

    public String getNonceStr() {
        return nonceStr;
    }

    public void setNonceStr(String nonceStr) {
        this.nonceStr = nonceStr;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public String getSignType() {
        return signType;
    }

    public void setSignType(String signType) {
        this.signType = signType;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

    public String getAttach() {
        return attach;
    }

    public void setAttach(String attach) {
        this.attach = attach;
    }

    public String getOutTradeNo() {
        return outTradeNo;
    }

    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }

    public String getFeeType() {
        return feeType;
    }

    public void setFeeType(String feeType) {
        this.feeType = feeType;
    }

    public int getTotalFee() {
        return totalFee;
    }

    public void setTotalFee(int totalFee) {
        this.totalFee = totalFee;
    }

    public String getSpbillCreateIp() {
        return spbillCreateIp;
    }

    public void setSpbillCreateIp(String spbillCreateIp) {
        this.spbillCreateIp = spbillCreateIp;
    }

    public String getNotifyUrl() {
        return notifyUrl;
    }

    public void setNotifyUrl(String notifyUrl) {
        this.notifyUrl = notifyUrl;
    }

    public String getTradeType() {
        return tradeType;
    }

    public void setTradeType(String tradeType) {
        this.tradeType = tradeType;
    }

    public String getProductId() {
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }
}
